

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>Sequence Diagrams and Version Control [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, Version Control,Version Control And Sequence Diagram,Sequence Diagram,Sequence Diagram And Version Control,Sequence Diagram Damage To,Lifeline,Lifeline Objects In Sequence Diagrams">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">Sequence Diagrams and Version Control</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="sequenceelements.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="sequenceelementactivation.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_BodyText"><span class="f_BodyText">You might create Sequence diagrams that use elements from other packages as the Lifelines within the diagram. In such cases, the diagrams could be corrupted when the element packages are checked in and out under version control. This is because during checkout the elements are first deleted from the model and then re-imported, and although they are reinstated in the diagrams, any Messages connecting them are not.</span></p>
<p class="p_BodyText"><span class="f_BodyText">So, if the diagram and its elements reside in different packages, a round-trip of the element package through version control might damage the Sequence diagram. </span></p>
<p class="p_BodyText"><span class="f_BodyText">The solution is to drag-and-drop each Class onto the Sequence diagram as an </span><span class="f_BodyText" style="font-style: italic;">object</span><span class="f_BodyText"> - when you drop the Class onto the Sequence diagram, in the </span><span class="f_UIControl">Paste Element</span><span class="f_BodyText"> dialog select the </span><span class="f_MenuKeyField">as Instance of Element (Object)</span><span class="f_BodyText"> option. This creates a new object in the </span><span class="f_BodyText" style="font-style: italic;">diagram's</span><span class="f_BodyText"> parent package, based on the selected Class element. You then create the Messages between the objects.</span></p>
<p class="p_BodyText"><span class="f_BodyText">Therefore, to ensure that a Sequence diagram is not damaged by round-trips of other packages through version control, remember that:</span></p>
<ul style="text-indent: 0px; margin-left: 30px; list-style-position: outside;">
<li><span class="f_Bulletlist1">The Lifelines must be objects (even though Enterprise Architect allows you to drop elements as Lifelines onto a Sequence diagram, it is not a strictly UML compliant construct)</span></li>
<li><span class="f_Bulletlist1">The Lifelines must be in the same package as the diagram.</span></li>
</ul>
<p class="p_BodyText"><span class="f_BodyText">The following illustration shows the </span><span class="f_UIControl">Project Browser</span><span class="f_BodyText"> with two packages: </span><span class="f_BodyText" style="font-style: italic;">P1,</span><span class="f_BodyText"> containing the elements, and </span><span class="f_BodyText" style="font-style: italic;">P2,</span><span class="f_BodyText"> containing a Sequence diagram that uses those elements. The diagram itself is also shown.</span></p>
<p class="p_TextIndentedL2"><img src="seqdiagverscntrl.png" width="973" height="496" border="0" alt="SeqDiagVersCntrl"></p>
<p class="p_BodyText"><span class="f_BodyText">This diagram will not be damaged, because all the Lifelines are objects and these objects reside in the same package as the Sequence diagram. </span></p>




            </div>
          </div>
        </div>



</div>


</body>
</html>
